package com.liuwei.spring.cloud.common.exception;


import com.liuwei.spring.cloud.common.enums.I18nEnum;

/**
 * API错误码枚举
 * IBaseEnum 用于统一枚举规范,同时提供通用的 EnumController
 * @author 刘伟
 */
@SuppressWarnings("AlibabaEnumConstantsMustHaveComment")
public enum ErrorCode implements I18nEnum {

	SUCCESS(20000, "操作成功"),  
	
	LOGGIN_ERROR(30001, "登录失败"),  
	ILLEGAL_USER(30002, "用户名异常"),  
	ILLEGAL_PASSWORD(30003, "密码异常"),  
	ILLEGAL_TOKEN(30004, "Token 异常"),
    RESOURCE_CONFILICT(30005, "资源冲突异常"),

    //系统公共参数 40000-50000
    SYSTEM_ERROR(40000, "系统异常"),
	INTERFACE_ERROR(40001, "权限异常"),
	DATABASE_ERROR(40002, "数据库异常"),  
	IO_ERROR(40003, "IO异常"),  
	PARAM_ERROR(40004, "参数错误"),

    BIZ_ERROR(60000, "业务异常");
    //公共业务错误码从60000-99999

    /**
     * 错误码
     */
    private int code;

    /**
     * 错误信息
     */
    private String desc;


    /**
     * 使用错误码和错误信息构造枚举
     *
     * @param code    错误码
     * @param message 错误信息
     */
    ErrorCode(int code, String message) {
        this.code = code;
        this.desc = message != null ? message : "";
    }

    /**
     * 获取错误码
     *
     * @return String
     */
    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return desc;
    }
}
